package com.product.android.utils;

import java.util.regex.Pattern;

/**
 * 正则表达式相关工具类
 * 
 * <br>Created 2014-8-22 下午5:34:56
 * @version  
 * @author   huangyx		
 *
 * @see 	 
 * 
 * Copyright(c) 2009-2014, TQ Digital Entertainment, All Rights Reserved
 *
 */
public class WbRegexUtils {

	private static String M_TAG_STRING_BEGIN = "<M [0-9]+>"; // M标签起始
	/** M标签结束 */
	public static String M_TAG_STRING_END = "</M>"; 
	
	private static String M_AT_PATTERN_STRING = "@.+?"; // 最小匹配@，必须和M标签合在一起才正常有效
	
	/** 用于从<M>里解析出*/
	public final static Pattern M_TAG_BEGIN_PATTERN = Pattern.compile(M_TAG_STRING_BEGIN);
	
	/** 
	 * 正则查找符合M标签的@数据 : <M [0-9]+>@.+?</M> 
	 * 
	 * 	 <M [0-9]+>	表示 <M 工号>
	 * 	 @.+    表示@人名
	 *   ?      表示非贪婪匹配(或者叫最小匹配)
	 *   </M>	表示以</M>结束
	 *   
	 * <br>作者</br> : huangszh
	 */
	public final static Pattern AT_M_TAG_PATTERN = Pattern.compile(new StringBuilder(M_TAG_STRING_BEGIN).
			append(M_AT_PATTERN_STRING).append(M_TAG_STRING_END).toString());
	
	/** 
	 * 正则查找符合@格式的字符串里面@人名 @.+?(?=</M>) 
	 * 
	 * 	 @.+    表示@人名
	 *   ?      表示非贪婪匹配(或者叫最小匹配)
	 *   (?=</M>) 表示匹配</M>前面的位置
	 *   
	 * <br>作者</br> : huangszh
	 */
	public final static Pattern AT_USER_PATTERN = Pattern.compile(new StringBuilder("@.+?(?=").
			append(M_TAG_STRING_END).append(")").toString());
	
	/** 
	 * 发送微博时自动检测替换@的正则字符串 @[^\\s@]+ 
	 * 
	 * 	[^\\s@]  表示不匹配带空格和@的字符
	 * 
	 * <br>作者</br> : huangszh
	 */
	private static String AUTO_AT_PATTERN_STRING = "@[^\\s@]+"; 
	
	/** 发送微博时自动检测替换@的正则 */
	public final static Pattern AUTO_AT_PATTERN = Pattern.compile(AUTO_AT_PATTERN_STRING);
	
	/** 匹配纯数字(这边就是工号)  */
	public final static Pattern AT_UID_PATTERN = Pattern.compile("[0-9]+");
	
	public final static Pattern HASHTAGS_PATTERN = Pattern
			.compile("#([^\\#|.]+)#");
}
